package org.cloudlab.bean;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * 学术期刊类
 *
 * @author Liu Yicong
 * @date 2023/9/3
 */
@NoArgsConstructor
@AllArgsConstructor
@Data
@TableName("basic_academic_journal")
public class AcademicJournal implements Serializable {
	@TableId(type = IdType.AUTO)
	private Long id;

	/**
	 * 期刊名称
	 */
	@TableField("journal_name")
	private String journalName;

	/**
	 * 中科院分区
	 */
	@TableField("CAS")
	private String CAS;

	/**
	 * JCR分区
	 */
	@TableField("JCR")
	private String JCR;

	/**
	 * 是否是TOP
	 */
	@TableField("is_top")
	private String isTop;

	/**
	 * 出版社
	 */
	@TableField("press")
	private String press;

	/**
	 * 年发表量
	 */
	@TableField("annual_pub_vol")
	private Integer annualPubVol;

	/**
	 * 期刊学科(小类学科)
	 */
	@TableField("minor_discipline")
	private String minorDiscipline;

	/**
	 * 期刊范围(可以详细阐述)
	 */
	@TableField("major_discipline")
	private String majorDiscipline;

	/**
	 * 影响因子
	 */
	@TableField("impact_factor")
	private Double impactFactor;

	/**
	 * LetPub地址
	 */
	@TableField("let_pub_link")
	private String letPubLink;

	/**
	 * 在投文章id
	 * 可能有个多个文章在投, 用逗号隔开
	 * 如: "1,45,31"
	 * 设置更新策略为ALWAYS, 在对象的属性为null时依然更新
	 */
	@TableField(value = "in_paper_id", updateStrategy = FieldStrategy.ALWAYS)
	private String inPaperId;

	/**
	 * 在投文章名称
	 * 可能有个多个文章在投, 用逗号隔开
	 * 如: "IONC,TCMA"
	 */
	@TableField(value = "paper_acronym", updateStrategy = FieldStrategy.ALWAYS)
	private String paperAcronym;

	/**
	 * 是否在投(Y表示是, N表示否)
	 */
	@TableField(value = "is_in_sub")
	private String isInSub;

	/**
	 * 投稿模板
	 */
	@TableField("submission_template")
	private String submissionTemplate;

	/**
	 * 页数要求
	 */
	@TableField("page_limit")
	private String pageLimit;

	/**
	 * 投中的文章
	 */
	@TableField(exist = false)
	private String acceptedPapers;

	/**
	 * 拒稿的文章
	 */
	@TableField(exist = false)
	private String rejectedPapers;

	/**
	 * 备注
	 */
	private String others;

	/**
	 * 创建时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
	@TableField("create_time")
	private Date createTime;

	/**
	 * 更新时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
	@TableField("update_time")
	private Date updateTime;

	/**
	 * 创建人
	 */
	@TableField("create_user_id")
	private Long createUserId;

	/**
	 * 最后更新人
	 */
	@TableField("update_user_id")
	private Long updateUserId;

	/**
	 * 是否删除
	 */
	@JsonIgnore//仅在后台数据库中存储, 不传送给前端
	@TableField("is_remove")
	private int isRemove;
}
